package com.zyh.kafka.day02;

import com.zyh.kafka.util.KafkaProducerUtils;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;

public class KafkaProducerTest2 {
    public static void main(String[] args) {
        KafkaProducer<String, String> kafkaProducer = KafkaProducerUtils.get();

        for (int i = 1; i <= 10; i++) {
            /*
                ProducerRecord(String topic,Integer partition,K key,V value)
                分区规则：
                    1，消息本身如果设置分区，则以设置的分区为主
                    2，如果没有分区，有key，则会以key的哈希值%分区数
                    3，没有分区，没有key，则会随机轮询
                        第一次发送消息，会产生一个随机值，随机值%可用分区数
                        从第二次开始，会在上一次key值的基础上+1，再%可用分区数
            */
            kafkaProducer.send(new ProducerRecord<>("topic-a", null, "hello", "hello-" + i));
            kafkaProducer.send(new ProducerRecord<>("topic-b", null, "hello", "hello-" + i));
        }

        KafkaProducerUtils.close(kafkaProducer);
    }
}
